This invention relates generally to digital data communication systems, and more particularly to digital data communication systems for recovering clock signals and digital data from a serial data signal.
Modern data communication systems transmit and receive digital information at high data transmission rates. The digital information is often transmitted great distances over a variety of communication mediums such as electrically conducting wires, optical fibers, or by way of airwave transmissions. Great demands as to speed and reliability are placed on these systems. One measure of reliability of such systems is the bit error rate (BER) of the system, and modern communication systems generally should have exceedingly low bit error rates.
When a receiving unit in a data communication system receives a signal, generally an electrical or optical signal, containing digital information, the receiving unit is to recover the digital information from the signal. In other words, if a transmitter transmits a signal containing information corresponding to a particular bit sequence, then the receiving unit should recover the particular bit sequence from the received signal.
In addition, often the received data signal does not include a separate clock signal or other direct indication of the demarcation within the signal between the separate bits making up the signal. For example, when bit sequences are transmitted in a non-return to zero (NRZ) format, a logic 1 bit is indicated by a signal at a first energy level, and a logic 0 bit is indicated by a signal at a second (usually lower) energy level. The clock signal used to define the bit sequence by demarcating the bits within the sequence is not explicitly transmitted to the receiving unit. Data formats, such as NRZ, which do not provide inherent demarcation between bits in the data stream, are often desired because such formats have greater bandwidth as clock information is not explicitly transmitted in addition to the data. Accordingly, receiving units should generally be able to recover clock information from the received signal, and then use that recovered clock information to determine the bit sequences contained in the received signal.
Some systems use a phase locked loop (PLL) to determine a clock signal corresponding to the clock used to generate the data stream, PLLs use a clock generator generating a clock signal at what is hoped to be the same frequency as the clock frequency of the transmitter, and adjusts the phase of the generated clock signal to form a phase adjusted clock signal based on information implicitly contained in the data signal periodic transitions, generally positive edge transitions, of the phase adjusted clock signal are used as timing points at which the data signal is sampled by comparing the data signal to a set energy level. If the energy level (usually in volts) is above the set energy level, a logic 1 bit is placed in the bit sequence. If the energy level is below the set energy level, a logic 0 is placed in the bit sequence.
FIG. 1 illustrates dual semi-idealized digital waveforms of data signals. A y-axis represents voltage of the data signals, and an x-axis represents time. As illustrated, a waveform of a first data signal 11a represents a binary sequence of alternating logic 1s and 0s. A waveform of a second data signal 11b represents the complement of the alternating binary sequence of the first binary sequence. The waveforms deviate from ideal waveforms in that each has a finite rise time and fall time when transitioning to and from a logic level 1 and a logic level 0.
The waveforms are divisible over time into a number of data cells 15a, 15b, 15c, 15d. Each of the data cells 15a, 15b, 15c, 15d represents one bit of data in a sequence of bits. In order to reconstruct the transmitted binary sequence the data signal is sampled and compared once for each data cell, generally at the expected midpoint in time of the data cell. Sampling is performed at defined intervals, generally in what is expected to be the middle of the period of an idealized data cell. Comparing is accomplished by comparing an energy level, generally a voltage, of the data signal with a pre-defined energy level, or voltage, which is generally in the middle of the expected range of energy levels. Thus, if the first data signal 11a is sampled once in each of the data cells 15a, 15b, 15c, 15d at times 19a, 19b, 19c, 19d using a voltage reference 17, the resulting bit pattern is 0101. Similarly sampling the second data signal results in a bit pattern of 1010.
Such systems are prone to errors, however. Slight differences in frequency between the transmitter clock and the clock generator of the receiving unit may lead to data recovery errors over time, or at least require periodic reacquisition of the correct phase adjusted clock signal, with a loss of bandwidth during the reacquisition period. In addition, deviations from an ideal transmitted data signal and distortions in transmitted signals, whether generated by properties of the transmitter, the communication medium, or otherwise, may result in data recovery errors. There are many causes of such deviations and distortions, and the deviations may change from transmitted bit to transmitted bit as well as exhibit both drift and an increase in the magnitude of the deviations over time as components age.
The transmitter may transmit signals that deviate from the ideal in terms of rise time, fall time, and energy levels. These deviations may vary from transmitter to transmitter, and even over time for a single transmitter. To an extent, these deviations may also vary from bit to bit for a single transmitter. Additionally, the transmitter and receiving unit may not have clocks perfectly aligned in frequency or phase, thus increasing the difficulty in the translation. Further, properties of the communication medium may distort the transmitted signals, and a receiver utilized by the receiving unit may also cause distortion of the signals.